home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / pcboard / vrs501.zip / VRS-M80.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-10-08  |  8KB  |  357 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.  
  31. ;------------------------------------------------------------------------------
  32.  
  33.     Goto LABEL001
  34.     End
  35.     If (0 == 0) STRING001 = "NO"
  36.     If (0 == 1) STRING001 = "YES"
  37.  
  38.     EndFunc
  39.  
  40.     :LABEL001
  41.     Cls
  42.     StartDisp 1
  43.     If (Exist(PPEPath() + "ARMOR.DBF")) Goto LABEL002
  44.     Copy PPEPath() + "ARMOR.VRS", PPEPath() + "ARMOR.DBF"
  45.     PrintLn "@X40┌─────────────────────────────────────────────────────────────────────────────@X4C┐@X0F"
  46.     PrintLn "@X40│@X4B                             New Armor Database Created!@POS:79@@X4C│@X0F"
  47.     PrintLn "@X40└@X4C─────────────────────────────────────────────────────────────────────────────@X4C┘@X0F"
  48.     Delay (2 * 182) / 10
  49.     :LABEL002
  50.     If (Exist(PPEPath() + "WEAPONS.DBF")) Goto LABEL003
  51.     Copy PPEPath() + "WEAPONS.VRS", PPEPath() + "WEAPONS.DBF"
  52.     PrintLn "@X40┌─────────────────────────────────────────────────────────────────────────────@X4C┐@X0F"
  53.     PrintLn "@X40│@X4B                           New Weapons Database Created!@POS:79@@X4C│@X0F"
  54.     PrintLn "@X40└@X4C─────────────────────────────────────────────────────────────────────────────@X4C┘@X0F"
  55.     Delay (2 * 182) / 10
  56.     :LABEL003
  57.     If (Exist(PPEPath() + "USER.DBF")) Goto LABEL004
  58.     Copy PPEPath() + "USER.VRS", PPEPath() + "USER.DBF"
  59.     PrintLn "@X40┌─────────────────────────────────────────────────────────────────────────────@X4C┐@X0F"
  60.     PrintLn "@X40│@X4B                             New User Database Created!@POS:79@@X4C│@X0F"
  61.     PrintLn "@X40└@X4C─────────────────────────────────────────────────────────────────────────────@X4C┘@X0F"
  62.     Delay (2 * 182) / 10
  63.     :LABEL004
  64.     If (Exist(PPEPath() + "MUTANT.DBF")) Goto LABEL005
  65.     Copy PPEPath() + "MUTANT.VRS", PPEPath() + "MUTANT.DBF"
  66.     PrintLn "@X40┌─────────────────────────────────────────────────────────────────────────────@X4C┐@X0F"
  67.     PrintLn "@X40│@X4B                             New Mutant Database Created!@POS:79@@X4C│@X0F"
  68.     PrintLn "@X40└@X4C─────────────────────────────────────────────────────────────────────────────@X4C┘@X0F"
  69.     Delay (2 * 182) / 10
  70.     :LABEL005
  71.     PrintLn "@X40┌─────────────────────────────────────────────────────────────────────────────@X4C┐@X0F"
  72.     PrintLn "@X40│@X4B                        Rebuilding Configuration Database @POS:79@@X4C│@X0F"
  73.     PrintLn "@X40└@X4C─────────────────────────────────────────────────────────────────────────────@X4C┘@X0F"
  74.     Newline
  75.     If (!Exist(PPEPath() + "VRS.DBF")) Call PPEPath() + "VRS-M81.PPE"
  76.     STRING004 = String(Date())
  77.     Cls
  78.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  79.     PrintLn "@X10│@X1E                               DAILY MAINTENANCE @POS:79@@X19│@X0F"
  80.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  81.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  82.     PrintLn "@X10│@X1B                             Getting Date Information @POS:79@@X19│@X0F"
  83.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  84.     DCloseAll
  85.     DOpen 0, PPEPath() + "VRS.DBF", 0
  86.     DTop 0
  87.     INTEGER002 = ToInteger(DGet(0, "DDELETE"))
  88.     DGet 0, "R_BATS", INTEGER004
  89.     DGet 0, "PL_BATS", INTEGER005
  90.     DGet 0, "LOTTO", INTEGER007
  91.     DPut 0, "MAINT", ToInteger(Date())
  92.     If (INTEGER007 == 0) INTEGER007 = 2500
  93.     DPut 0, "LOTTO", INTEGER007 * 2
  94.     DCloseAll
  95.     DOpen 4, PPEPath() + "WEAPONS.DBF", 0
  96.     DnCreate 4, PPEPath() + STRING004 + ".NDX", "NUMBER"
  97.     Cls
  98.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  99.     PrintLn "@X10│@X1E                               DAILY MAINTENANCE @POS:79@@X19│@X0F"
  100.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  101.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  102.     PrintLn "@X10│                     @X1B        Getting User Information @POS:79@@X19│@X0F"
  103.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  104.     DOpen 0, PPEPath() + "USER.DBF", 0
  105.     Newlines 2
  106.     For INTEGER001 = 2 To DRecCount(0)
  107.         Backup 80
  108.         ClrEol
  109.         DGo 0, INTEGER001
  110.         Print "@X0E                      Updating user @X0A:@X03 ", Trim(DGet(0, "HANDLE"), " "), "@X0F"
  111.         STRING002 = Trim(DGet(0, "NAME"), " ")
  112.         DPut 0, "TRAINED", "N"
  113.         DPut 0, "ONLINE", 0
  114.         If ((DGet(0, "WEAPN1") < 1) && (DGet(0, "WEAPN2") > 1)) Then
  115.             DFCopy 0, "WEAPN1", 0, "WEAPN2"
  116.             DFCopy 0, "WEAPT1", 0, "WEAPT2"
  117.             DFCopy 0, "WEAPA1", 0, "WEAPA2"
  118.             DFCopy 0, "WEAPD1", 0, "WEAPD2"
  119.             DPut 0, "WEAPN2", 0
  120.             DPut 0, "WEAPT2", "NONE"
  121.             DPut 0, "WEAPA2", 0
  122.             DPut 0, "WEAPD2", 0
  123.         Endif
  124.         If (DGet(0, "WEAPN2") < DGet(0, "S_W_NUMBER")) Then
  125.             DFCopy 0, "WEAPN2", 0, "S_W_NUMBER"
  126.             DFCopy 0, "WEAPT2", 0, "S_W_NAME"
  127.             DFCopy 0, "WEAPA2", 0, "S_W_AMMO"
  128.             DFCopy 0, "WEAPD2", 0, "S_W_DAMAGE"
  129.             DPut 0, "S_W_NUMBER", 0
  130.             DPut 0, "S_W_NAME", "NONE"
  131.             DPut 0, "S_W_AMMO", 0
  132.             DPut 0, "S_W_DAMAGE", 0
  133.         Endif
  134.         If (ToInteger(Date() - ToInteger(DGet(0, "L_DATE"))) > INTEGER002) Then
  135.             DDelete 0
  136.             FOpen 7, PPEPath() + "SYSOP." + String(PcbNode()), 2, 0
  137.             FPutLn 7
  138.             FPutLn 7, "VRS - Informational Message!  Read and DESTROY immediately!"
  139.             FPutLn 7, "-----------------------------------------------------------"
  140.             FPutLn 7, "You have been automatically removed from the roles of VRS! "
  141.             FPutLn 7, "This action was caused by your being A.W.O.L.              "
  142.             FPutLn 7, "(Absent With Out Leave).  You can be reinstated again by   "
  143.             FPutLn 7, "joining the active mission NOW!                            "
  144.             FPutLn 7
  145.             FPutLn 7, "Transmission authorized by VRS-COMM-PAK       / EOT        "
  146.             FPutLn 7
  147.             FPutLn 7, "VRS - Informational Message!  Read and DESTROY immediately!"
  148.             FClose 7
  149.             Message 0, STRING002, "VRS-COMM-PAK", "AWOL ALERT!", "R", 0, 0, 0, PPEPath() + "SYSOP." + String(PcbNode())
  150.             Delete PPEPath() + "SYSOP." + String(PcbNode())
  151.         Endif
  152.         DGet 0, "CRY_DATE", INTEGER003
  153.         DGet 0, "VITALITY", STRING003
  154.         If (STRING003 == "C") Then
  155.             If (INTEGER003 > 0) DPut 0, "CRY_DATE", INTEGER003 - 1
  156.             If (INTEGER003 == 0) DDelete 0
  157.             FOpen 7, PPEPath() + "SYSOP." + String(PcbNode()), 2, 0
  158.             FPutLn 7
  159.             FPutLn 7, "VRS - Informational Message!  Read and DESTROY immediately!"
  160.             FPutLn 7, "-----------------------------------------------------------"
  161.             FPutLn 7, "You have been automatically removed from the roles of VRS! "
  162.             FPutLn 7, "This action was caused by your CRYO-CUBE malfunctioning,   "
  163.             FPutLn 7, "This action only occurs on CRYO-Suspension extended leaves."
  164.             FPutLn 7, "You may rejoin the active mission, but since you have been "
  165.             FPutLn 7, "killed in Cryo-Suspension, you will start at the lowest    "
  166.             FPutLn 7, "rank (private).                                            "
  167.             FPutLn 7
  168.             FPutLn 7, "Transmission authorized by VRS-COMM-PAK       / EOT        "
  169.             FPutLn 7
  170.             FPutLn 7, "VRS - Informational Message!  Read and DESTROY immediately!"
  171.             FClose 7
  172.             Message 0, STRING002, "VRS-COMM-PAK", "CRYO-DEATH ALERT!", "R", 0, 0, 0, PPEPath() + "SYSOP." + String(PcbNode())
  173.             Delete PPEPath() + "SYSOP." + String(PcbNode())
  174.         Endif
  175.         INTEGER006 = Random(200)
  176.         If (INTEGER006 == 69) Then
  177.             FOpen 7, PPEPath() + "SYSOP." + String(PcbNode()), 2, 0
  178.             FPutLn 7
  179.             FPutLn 7, "VRS - Informational Message!  Read and DESTROY immediately!"
  180.             FPutLn 7, "-----------------------------------------------------------"
  181.             FPutLn 7, "You have been automatically removed from the roles of VRS! "
  182.             FPutLn 7, "This action was caused by your CRYO-CUBE malfunctioning,   "
  183.             FPutLn 7, "This action only occurs on CRYO-Suspension extended leaves."
  184.             FPutLn 7, "You may rejoin the active mission, but since you have been "
  185.             FPutLn 7, "killed in Cryo-Suspension, you will start at the lowest    "
  186.             FPutLn 7, "rank (private).                                            "
  187.             FPutLn 7
  188.             FPutLn 7, "Transmission authorized by VRS-COMM-PAK       / EOT        "
  189.             FPutLn 7
  190.             FPutLn 7, "VRS - Informational Message!  Read and DESTROY immediately!"
  191.             FClose 7
  192.             Message 0, STRING002, "VRS-COMM-PAK", "CRYO-DEATH ALERT!", "R", 0, 0, 0, PPEPath() + "SYSOP." + String(PcbNode())
  193.             Delete PPEPath() + "SYSOP." + String(PcbNode())
  194.             DPut 0, "VITALITY", "N"
  195.         Endif
  196.         If (DGet(0, "VITALITY") == "N") DPut 0, "VITALITY", "Y"
  197.         DPut 0, "HITPTS_L", DGet(0, "HITPTS_B")
  198.         DPut 0, "BANKED", DGet(0, "BANKED") * 1.02
  199.         If (DGet(0, "WEAPN1") > 0) Then
  200.             DSeek 4, DGet(0, "WEAPN1")
  201.             DFCopy 0, "WEAPT1", 4, "DESCRIPT"
  202.             DFCopy 0, "WEAPD1", 4, "DAMAGE"
  203.         Endif
  204.         If (DGet(0, "WEAPN2") > 0) Then
  205.             DSeek 4, DGet(0, "WEAPN2")
  206.             DFCopy 0, "WEAPT2", 4, "DESCRIPT"
  207.             DFCopy 0, "WEAPD2", 4, "DAMAGE"
  208.         Endif
  209.         If (DGet(0, "S_W_NUMBER") > 0) Then
  210.             DSeek 4, DGet(0, "S_W_NUMBER")
  211.             DFCopy 0, "S_W_NAME", 4, "DESCRIPT"
  212.             DFCopy 0, "S_W_DAMAGE", 4, "DAMAGE"
  213.         Endif
  214.         DPut 0, "R_FTS_L", INTEGER004
  215.         DPut 0, "P_FTS_L", INTEGER005
  216.         If (ToInteger(DGet(0, "CASH")) + ToInteger(DGet(0, "BANKED")) < 100) DPut 0, "CASH", 100
  217.     Next
  218.     DPack 0
  219.     DCloseAll
  220.     Cls
  221.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  222.     PrintLn "@X10│@X1E                               DAILY MAINTENANCE @POS:79@@X19│@X0F"
  223.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  224.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  225.     PrintLn "@X10│@X1E                               Updating Mutants  @POS:79@@X19│@X0F"
  226.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  227.     DCloseAll
  228.     DOpen 0, PPEPath() + "MUTANT.DBF", 0
  229.     DOpen 1, PPEPath() + "WEAPONS.DBF", 0
  230.     DOpen 2, PPEPath() + "ARMOR.DBF", 0
  231.     DTop 0
  232.     Newlines 5
  233.     :LABEL006
  234.     If (DEof(0)) Goto LABEL007
  235.     Backup 80
  236.     ClrEol
  237.     Print "@X0E                      Revitalizing mutant @X0A: @X0B", Trim(DGet(0, "HANDLE"), " ")
  238.     DPut 0, "VITALITY", "Y"
  239.     DPut 0, "HITPTS_L", DGet(0, "HITPTS_B")
  240.     DTop 1
  241.     If ((DGet(0, "WEAPN0") == 0) || (DGet(0, "WEAPN0") > DRecCount(0))) DPut 0, "WEAPN0", 1
  242.     DGo 1, DGet(0, "WEAPN0")
  243.     DFCopy 0, "WEAPT0", 1, "DESCRIPT"
  244.     DFCopy 0, "WEAPD0", 1, "DAMAGE"
  245.     DTop 2
  246.     If ((DGet(0, "ARMOR_N") == 0) || (DGet(0, "ARMOR_N") > DRecCount(0))) DPut 0, "ARMOR_N", 1
  247.     DGo 2, DGet(0, "ARMOR_N")
  248.     DFCopy 0, "ARMOR_D", 2, "DEFENSE"
  249.     DFCopy 0, "ARMOR_T", 2, "DESCRIPT"
  250.     If (!DEof(0)) DSkip 0, 1
  251.     Goto LABEL006
  252.     :LABEL007
  253.     DCloseAll
  254.     Cls
  255.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  256.     PrintLn "@X10│@X1E                             Mutants Revivified! @POS:79@@X19│@X0F"
  257.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  258.     Delete PPEPath() + STRING004 + ".NDX"
  259.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  260.     PrintLn "@X10│@X1E                          Temporary Indices Deleted! @POS:79@@X19│@X0F"
  261.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  262.     Call PPEPath() + "VRS-M9.PPE"
  263.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  264.     PrintLn "@X10│@X1E                              Daily News Updated! @POS:79@@X19│@X0F"
  265.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  266.     DCloseAll
  267.     End
  268.  
  269. ;------------------------------------------------------------------------------
  270. ;
  271. ; Usage report (before postprocessing)
  272. ;
  273. ; ■ Statements used :
  274. ;
  275. ;    2       End
  276. ;    5       Cls
  277. ;    2       ClrEol
  278. ;    17      Goto 
  279. ;    9       Let 
  280. ;    2       Print 
  281. ;    42      PrintLn 
  282. ;    25      If 
  283. ;    3       FOpen 
  284. ;    3       FClose 
  285. ;    37      FPutLn 
  286. ;    1       StartDisp 
  287. ;    4       Delete 
  288. ;    4       Delay 
  289. ;    1       Newline
  290. ;    2       Newlines 
  291. ;    2       Call 
  292. ;    2       Backup 
  293. ;    3       Message 
  294. ;    4       Copy 
  295. ;    1       EndFunc
  296. ;    6       DOpen 
  297. ;    1       DPack 
  298. ;    6       DCloseAll
  299. ;    1       DnCreate 
  300. ;    4       DTop 
  301. ;    3       DGo 
  302. ;    1       DSkip 
  303. ;    2       DDelete 
  304. ;    3       DSeek 
  305. ;    5       DGet 
  306. ;    24      DPut 
  307. ;    18      DFCopy 
  308. ;
  309. ;
  310. ; ■ Functions used :
  311. ;
  312. ;    6       *
  313. ;    4       /
  314. ;    45      +
  315. ;    2       -
  316. ;    9       ==
  317. ;    4       <
  318. ;    1       <=
  319. ;    8       >
  320. ;    2       >=
  321. ;    16      !
  322. ;    3       &&
  323. ;    3       ||
  324. ;    3       Trim()
  325. ;    1       Random()
  326. ;    3       Date()
  327. ;    10      String()
  328. ;    32      PPEPath()
  329. ;    9       PcbNode()
  330. ;    5       Exist()
  331. ;    6       ToInteger()
  332. ;    2       DEof()
  333. ;    4       DRecCount()
  334. ;    27      DGet()
  335. ;
  336. ;------------------------------------------------------------------------------
  337. ;
  338. ; Analysis flags : C
  339. ;
  340. ; C - Call child PPE ■ 3
  341. ;     This is usually normal, but may be a tricky way to launch some
  342. ;     sysop-only commands.
  343. ;     ■ Search for : CALL
  344. ;
  345. ;------------------------------------------------------------------------------
  346. ;
  347. ; Postprocessing report
  348. ;
  349. ;    1       For/Next
  350. ;    0       While/EndWhile
  351. ;    8       If/Then or If/Then/Else
  352. ;    0       Select Case
  353. ;
  354. ;------------------------------------------------------------------------------
  355. ;                 AEGiS Corp - Break the routines, code against the machines!
  356. ;------------------------------------------------------------------------------
  357.